import {defineStore} from 'pinia'
import {getStorage} from '@/lib/storage.js'
import chat from '@/lib/chat.js'
import useFriend from './friend'
import {Ws} from '@/config/config'
import $S from '@/server/server.js'

const useUser = defineStore('user', {
	state: () => {
		return {
			userinfo: {}, // 用户信息
			chat: {} ,// 聊天的实例
			chatList: [] ,// 会话聊天列表	
		}
	},
	actions: {
		setUserinfo(data) { // 设置用户信息
			this.userinfo = data
		},
		clearUserinfo() { // 清除用户信息
			this.userinfo = {}
		},
		getOffineMessage() { // 获取离线消息
			$S.get(`/chat/offine`,{},{token:true})
			.then(res =>{
				console.log('获取离线消息成功')
				// console.log(res)
			})
		},
		readUserinfo() { // 从缓存中读取用户信息
			this.userinfo = getStorage('userinfo')
			if (this.userinfo) {
				// 获取好友列表
				const friendStore = useFriend()
				friendStore.getFriendList()
				// 创建websocket实例
				this.chat = new chat({
					url: Ws
				})
				// 获取离线消息
				this.getOffineMessage() 
				// 获取缓存中的会话列表getChatList
				this.chatList = this.chat.getChatList() ? this.chat.getChatList() : [],				// 更新未读数的角标				this.chat.updateBadge()
			}
		},
		updateChatList(list){ // 更新会话列表
			this.chatList = list
		}
	}
})

export default useUser